/**
 * 项目编译成功后, 在new-vitapollo/public文件夹下添加version.json文件.
 * 文件中保存当前编译时间,编译代码分支,编译代码最后一次提交ID;
 * 用于编译之后,追溯测试环境或生产环境代码版本
 */
try {
    const execSync = require('child_process').execSync; //同步子进程
    const fs = require('fs'); //文件读取模块
    const versionPath = 'version.json'; //version路径
    const buildPath = 'DiApp'; //打包的路径

    const versionId = (new Date()).getTime()
    const commitId = execSync('git show -s --format=%H').toString().trim(); //当前提交的版本号
    const gitBranch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); //说明

    const versionData = {
        versionId: versionId,
        gitBranch: gitBranch,
        commitId: commitId
    };

    if (fs.existsSync(buildPath)) {
        fs.writeFileSync(`${buildPath}/static/${versionPath}`, JSON.stringify(versionData));
    } else {
        console.warn(`编译结果文件夹${buildPath}不存在 !`);
    }

    // 程序执行结束
    const endMsg = `!!!! 编译成功 !!!`;
    console.info(endMsg);
} catch (exception) {
    console.warn('生成version.json失败', exception);
}
